package BST;

public class No {

	private No esquerda;
	private No direita;
	private No antecessor;
	private int altura;
	private int elemento;

	/**
	 * M?todo construtor
	 * 
	 * @param elemento elemento do no
	 */
	public No(int elemento) {
		this.elemento = elemento;		
	}	
				
	/**
	 * Retorna o no a esquerda
	 * 
	 * @return o no a esquerda
	 */
	public No getEsquerda() {
		return esquerda;
	}

	/**
	 * Modifica o no a esquerda
	 * 
	 * @param esquerda
	 *            a ser modificado
	 */
	public void setEsquerda(No esquerda) {
		this.esquerda = esquerda;
	}

	/**
	 * Retorna o no a direita
	 * 
	 * @return o no a direita
	 */
	public No getDireita() {
		return direita;
	}

	/**
	 * Modifica o no a direita
	 * 
	 * @param direita
	 *            a ser modificado
	 */
	public void setDireita(No direita) {
		this.direita = direita;
	}

	/**
	 * Retorna o antecessor
	 * 
	 * @return o antecessor
	 */
	public No getAntecessor() {
		return antecessor;
	}

	/**
	 * Modifica o no antecessor
	 * 
	 * @param antgecessor
	 *            a ser modificado
	 */
	public void setAntecessor(No antecessor) {
		this.antecessor = antecessor;
	}

	/**
	 * Retorna o elemento do no
	 * 
	 * @return o elemento do no
	 */
	public int getElemento() {
		return elemento;
	}

	/**
	 * Modifica o elemento do no
	 * 
	 * @param elemento a ser modificado
	 */
	public void setElemento(int elemento) {
		this.elemento = elemento;
	}

	
	/**
	 * M?todo que compara dois n?s
	 * 
	 * @param n
	 *            no objeto a ser comparado
	 */
	@Override
	public boolean equals(Object n) {
		if(!(n instanceof No))
			return false;
		if(((No)n).getElemento() == this.elemento
				&& ((No)n).getAltura() == this.altura)
			return true;
		
		return false;
	}

	/**
	 * Retorna altura do no
	 * @return a altura do no
	 */
	public int getAltura() {
		return altura;
	}

	/**
	 * Modifica a altura do no
	 * @param altura nova
	 */
	public void setAltura(int altura) {
		this.altura = altura;
	}
	
	
	
	
	
	

}